A virtualized cluster is a cluster of different storage nodes that together expose a single storage device. Input/Output operations (“I/Os”) sent to the cluster are internally re-routed to read and write data to the appropriate locations. In this regard, a virtualized cluster of storage nodes can be considered analogous to collection of disks in a Redundant Array of Inexpensive Disks (“RAID”) configuration, since a virtualized cluster hides the internal details of the cluster's operation from initiators and presents a unified device instead.
In a virtualized cluster, data may also be replicated or mirrored between nodes such that copies of the data are stored in two or more locations. Such replication can improve data availability because the data may still be available at a second node should a first node become unavailable because of hardware failure, network congestion, link failure, or otherwise. In a mirrored system, the data on each node is duplicated to other storage units. Duplication can be made at the same time as an initial write I/O or it can be done later, in a background operation. When the duplication is done at the same time as an initial write, it is called a synchronous duplication. In contrast, a later duplication performed in the background may be called an asynchronous duplication. In either synchronous or asynchronous mirroring systems, one of the main requirements of operation is to maintain the consistency of data across all of the mirror nodes.
An advantage of synchronous mirroring is that the secondary node is always synchronized with the primary node. If there is a disaster in the primary node at any time, the secondary node can take over without loss in data. The amount of data lost during such a recovery can be captured by a metric referred to as the RPO (Recovery Point Objective). Similarly, the amount of down-time due to a disaster can be captured by a metric referred to as the RTO (Recovery Time Objective). RTO generally arises from the delay in the secondary node taking over from the primary node. RPO and RTO are two important criteria for determining the nature of replication to be used.
A system administrator will generally prefer to minimize RPO and RTO, but there are practical limitations to consider. For example, when two mirrored nodes offer similar performance and are connected by a fast data link, synchronous operation is possible. This is because both nodes can complete a write I/O while the initiator is waiting for acknowledgment of the I/O. The delay is generally similar to the delay associated with only the primary write I/O. This is possible because the operating speeds of the two nodes are closely matched and the data link between the two nodes is relatively fast.
In a heterogeneous storage network having mixed node performance, synchronous replication may still fare poorly. This may even be so when the two nodes have a high speed link between them because the network has a mixture of high performance storage nodes and slower nodes. Generally, the slower nodes are using larger, slower physical disks as secondary (backup) nodes since such storage is generally lower in cost per unit of capacity. In one example of this, a storage network may have nodes with high-performance SAS (serially attached SCSI) disks attempting to replicate to backup storage nodes having slower SATA (serial advanced technology attachment) disks.
If a mixed, or heterogeneous, system attempts to operate in a synchronous replication mode, the performance of the entire system will typically degrade to that of the slower storage nodes. In such scenarios, the traditional approach would be to either use high-cost, high-performance nodes even as secondary nodes, or to switch over to asynchronous replication between the mixed nodes. The first option allows for continued use of synchronous replication mode and achieves the associated desirable RPO and RTO values, but increases costs. The second option allows the system to achieve higher speed performance without buying all high-speed storage nodes, but the cost is to sacrificing RPO and RTO performance by switching to asynchronous replication. Either way, there is a trade-off.
It is with respect to these considerations and others that the disclosure made herein is presented.